package au.com.acpfg.misc.biojava; public class ModeSummary { private int[] m; private int best; private int m_window_size; // only 3 is supported for now public ModeSummary(char c1, char c2, char c3) { assert((c1 == '0' || c1 == '1' || c1 == '2') && (c2 == '0'|| c2 == '1' || c2 == '2') && (c3 == '0' || c3== '1' || c3 == '2')); m = new int[3]; int v1 = c1 - '0'; int v2 = c2 - '0'; int v3 = c3 - '0'; assert(v1 >= 0 && v1 <= 2); assert(v2 >= 0 && v2 <= 2); assert(v3 >= 0 && v3 <= 2); m[0] = 0; m[1] = 0; m[2] = 0; m[v1]++; m[v2]++; m[v3]++; best = m[0]; if (m[1] > best) best = m[1]; if (m[2] > best) best = m[2]; m_window_size = 3; } public String toString() { StringBuffer sb = new StringBuffer(); for (int i=0; i<m_window_size; i++) { if (m[i] == best) sb.append((char)((int)'0'+i)); } return sb.toString(); } }